#ifndef _WX_DIRDLG_H_BASE_
#define _WX_DIRDLG_H_BASE_

#include "wx/dialog.h"

extern const wxChar wxDirDialogNameStr[];
extern const wxChar wxDirDialogDefaultFolderStr[];
extern const wxChar wxDirSelectorPromptStr[];

#define wxDD_CHANGE_DIR         0x0100
#define wxDD_DIR_MUST_EXIST     0x0200
#define wxDD_NEW_DIR_BUTTON     0
#define wxDD_DEFAULT_STYLE      (wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER)

class wxDirDialogBase : public wxDialog {
  public:
    wxDirDialogBase() {}
    wxDirDialogBase( wxWindow *parent,const wxString& title = wxDirSelectorPromptStr,
                     const wxString& defaultPath = wxEmptyString,long style = wxDD_DEFAULT_STYLE,
                     const wxPoint& pos = wxDefaultPosition,const wxSize& sz = wxDefaultSize,
                     const wxString& name = wxDirDialogNameStr ) {
      Create( parent, title, defaultPath, style, pos, sz, name );
    }

    virtual ~wxDirDialogBase() {}

    bool Create( wxWindow *parent,const wxString& title = wxDirSelectorPromptStr,
                 const wxString& defaultPath = wxEmptyString,long style = wxDD_DEFAULT_STYLE,
                 const wxPoint& pos = wxDefaultPosition,const wxSize& sz = wxDefaultSize,
                 const wxString& name = wxDirDialogNameStr ) {
      if( !wxDialog::Create( parent, wxID_ANY, title, pos, sz, style, name ) ) {
        return false;
      }
      m_path = defaultPath;
      m_message = title;
      return true;
    }
    wxDEPRECATED( long GetStyle() const );
    wxDEPRECATED( void SetStyle( long style ) );
    virtual void SetMessage( const wxString& message ) { m_message = message; }
    virtual void SetPath( const wxString& path ) { m_path = path; }
    virtual wxString GetMessage() const { return m_message; }
    virtual wxString GetPath() const { return m_path; }
  protected:
    wxString m_message;
    wxString m_path;
};

#include "wx/gtk/dirdlg.h"

wxString wxDirSelector( const wxString& message = wxDirSelectorPromptStr,const wxString& defaultPath = wxEmptyString,
               long style = wxDD_DEFAULT_STYLE,const wxPoint& pos = wxDefaultPosition,wxWindow *parent = NULL );

#endif
